package com.wind.mvc;

import org.springframework.cache.annotation.Cacheable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/test")
public class TestController {

    /**
     * 测试缓存
     * <p>
     * 现象是：
     * 第一次访问时，会进断点 然后调用方法拿到返回数据。
     * 第二次访问时，不会进断点，直接返回缓存数据。
     *
     * @param id id
     * @return 返回结果
     */
    @RequestMapping("/test")
    @Cacheable(value = "Hello", key = "#id")
    public String test(@RequestParam("id") Long id) {
        // 调用API获取数据
        String s = get(id);
        System.out.println("获取到的User：" + s);
        return s;
    }

    private String get(Long id) {
        System.out.println("查询用户【id】= " + id);
        if (id == 1L) {
            return "1";
        } else if (id == 2L) {
            return "2";
        } else {
            return "3";
        }
    }
}
